1. Field of the Invention
The present invention relates generally to a home network using Universal Plug and Play (UPnP), and more particularly, to a method and apparatus for enabling playback of scenes or scene groups at a renderer in playing back Audio/Video (AV) content using UPnP.
2. Description of the Related Art
In general, a home network including Internet Protocol (IP)-based private networks connects various types of home devices, such as Personal Computers (PCs), intelligent products and wireless devices, to one network through a common virtual computing environment called “middleware”, and controls the devices.
The term middleware refers to software for connecting various digital devices on a peer-to-peer basis and enabling communication between the devices. Various technologies, such as Home AV Interoperability (HAVI), UPnP, Java Intelligent Network Infra-structure (JINI), and Home Wide Web (HWW), are types of middleware software that have been proposed up to now.
Since a Plug and Play (PnP) function, has been added to the operating system, it has been very easy to install and set peripheral devices of PCs. UPnP, which has evolved from PnP, is a technology for enabling various home appliances and network devices such as network printers and Internet gates to perform networking, particularly home networking, by extending such convenient functions up to the entire network based on the Internet standard technologies such as Transmission Control Protocol/Internet Protocol (TCP/IP), Hyper Text Transfer Protocol (HTTP), and eXtensible Markup Language (XML).
A UPnP network consists of Controlled Devices (CD), which are connected to and controlled by an IP-based home network, and Control Points (CP) for controlling the controlled devices. The UPnP network performs communication between the control point and the controlled devices through the following steps using a UPnP protocol stack structure that includes Internet protocols such as TCP/IP and HTTP, and technologies such as XML and Simple Object Access Protocol (SOAP).
In a first (or addressing step), a control point and a controlled device have their own individual IP addresses. Upon joining the network, the controlled device fetches its IP address using a Dynamic Host Configuration Protocol (DHCP), or is assigned an IP address using automatic IP addressing if there is no DHCP server in the network.
In a second (or discovery step), the control point searches for the controlled device, or the controlled device advertises its location. The discovery step is performed using a Simple Service Discovery Protocol (SSDP). If a controlled device is added to the network, the controlled device delivers an alive message of SSDP to the network by IP multicasting, and then the control point may determine presence/absence of the controlled device by receiving the alive message. When a control point newly joins the network, the control point multicasts a Multicast-search (M-search) message of SSDP to the network, and then all of the controlled devices, which checked the M-search message, send M-search response messages containing their own information to the control point.
In a third (or description step), the control point checks description contents of the controlled device. When the control point desires the controlled device after checking the response message, the control point may send to the controlled device a request for detailed information related to the controlled device. Upon receipt of the request, the controlled device sends its information in an XML document.
In a fourth (or control step), the control point operates the controlled device by controlling a function of the controlled device. When the control point intends to control an arbitrary controlled device, the control point sends a desired service to the controlled device using SOAP, based on the detailed information related to the controlled device. SOAP is a protocol that is written on HTTP by XML for the purpose of invoking (calling) a remote function.
In a fifth (or eventing step), the control point receives a change in event of the controlled device. The control point sends a subscribe request for a relevant event to the controlled device when it desires to receive an event message from the controlled device. If the subscription is made successful, the controlled device sends an event message to the control point using General Event Notification Architecture (GENA).
In a sixth (or presentation step), the control point presents a state of the controlled device using a Hyper Text Markup Language (HTML) of the controlled device.
FIG. 1 illustrates device discovery and action execution in a conventional UPnP network system. Referring to FIG. 1, in step 110, a control point 101 discovers or searches for a controlled device 102, or the controlled device 102 advertises its location, thereby performing the discovery step. In step 120, the control point 101 sends an action request to the controlled device 102. In step 130, the controlled device 102 performs an action corresponding to the received action request. In step 140, the controlled device 102 responds the control point 101 with the action execution result. To be specific, the controlled device 102 performs the requested action, and transmits the normal execution result for the action or an error message to the control point 101.
Based on the basic UPnP control method, a UPnP controlled device can provide various services or functions to the control point, such as controlling a UPnP controlled device such that AV contents stored in the UPnP controlled device can be played back in other UPnP controlled devices supporting a rendering service. When the UPnP controlled device is a gateway, the UPnP control point can change and set an IP address band and addresses of a subnet and a gateway, which are to be assigned to the devices in the home, by controlling the UPnP gateway or the controlled device.
The UPnP control point requests a control action upon receiving an input from a user through a user interface, displays execution results on the requested action for the user, and presents an event notification from the controlled device. An input method offered by the UPnP control point is limited by types, hardware characteristics and performances of peripheral devices that are physically connected to the UPnP control point.
FIG. 2 illustrates a conventional system that plays back AV content using a UPnP protocol. The AV content playback system using UPnP includes a media server 220 in which AV contents are stored, a media renderer 230 for playing back the AV contents, and an AV control point 210 for controlling the media server 220 and the media renderer 230 according to a command from a user.
The media server 220 stores a variety of image, audio, video and content files, and may be realized with such devices as PCs, set-top boxes, Digital Video Disc (DVD) players, Motion Pictures Experts Group (MPEG) Layer Audio 3 (MP3) Players (MP3P), Digital Still Cameras (DSC5), all of which have storage means such as Hard Disk Drivers (HDDs), flash memories and DVD/CD. The media service 220 delivers the stored contents to the media renderer 230 for content playback under the control of the AV control point 210.
The user can enjoy the AV contents with the media renderer 230, which may be realized with a device equipped with a display and/or a speaker, such as portable terminals, Digital TVs (DTV), HiFi Audio sets and monitors.
The AV control point 210 sends invocations for various UPnP actions necessary for content playback to the media server 220 and the media renderer 230 to execute the user's commands. The AV control point 210 may be realized in a user input device such as a remote controller, as well as in the media server 220 or the media renderer 230.
FIG. 3 illustrates a conventional operation of playing back specific content using UPnP. In FIG. 3, a user appreciates AV content using a UPnP control point 302, a media server 301 and a media renderer 303. In step 310, the control point 302 fetches a metadata list for AV contents existing in the media server 301 by invoking a Browse/Search( ) action and then displays the metadata list on its screen in order to check a list of the AV contents in the media server 301. If the user selects specific content and makes a command to play back the content at a specific media renderer 303, the control point 302 receives a list of protocols and formats that can be played back in the media renderer 303, by sending a GetProtocolInfo( ) invocation to the media renderer 303.
In step 320, the control point 302 determines whether a protocol/format of the content to be played back is matched to any protocol/format in the protocol/format list received from the media renderer 303. If there is any matched protocol/format (i.e., if content playback is available in the media renderer 303), the control point 302 sends a PrepareForConnection( ) invocation to the media server 301 and receives AVTransportID capable of controlling a pertinent connection from the media server 301 in step 330. Similarly, the control point 302 can acquire an AV Transport (AVT) instance ID and an Rendering Control Service (RCS) instance ID by sending a PrepareForConnection( ) invocation to the media renderer 303. The RCS instance ID is used to control such parameters as volume, color and brightness of playback devices.
In step 340, the control point 302 invokes SetAVTransportURI( ) of the media server 301 or the media renderer 303 to play back the selected content. Here, the control point 302 delivers a Resource Uniform Resource Identifier (URI) of the content to be played back, using an argument.
In step 350, if the user pushes a playback button, the control point 302 invokes a Play( ) action of the media server 301 or the media renderer 303 to which it sent the SetAVTransportURI( ) invocation. When the control point 302 invokes a Play( ) action of the media renderer 303, the media renderer 303 requests the media server 301 to send a file corresponding to a URI delivered through SetAVTransportURI( ) to the media renderer 303. When the control point 302 invokes a Play( ) action of the media server 301, the media server 301 transmits a file corresponding to a URI that is set through SetAVTransportURI( ), to the media renderer 303. Here, HTTP, RTP and Institute of Electrical and Electronics Engineers (IEEE) 1394 are protocols used for streaming the content. In the streaming process, various actions for playback control may be invoked, such as Seek( ), Stop( ) and Pause( ). Also, various other RCS-related actions of the media renderer may be invoked to control volume (SetVolume( )), color and brightness of the playback device.
In step 360, after the content playback is completed, the control point 302 determines whether there is a repeated playback request from the user. If the user desires repeated playback, the control point 302 may repeat the content playback by returning to step 340. After completion of the playback, the control point 302 invokes in step 370 TransferComplete( ) to inform the media server 301 and the media renderer 303 of the playback completion. Upon invocation of the TransferComplete( ) action, the media server 301 and the media renderer 303 release the resources that were assigned for the connection.
Conventionally, specific AV content is played back using UPnP in the above-described operation. However, this method cannot select and play back only the user-desired scenes from among several contents.